<?php

class Recette extends CI_Model
{
	const TABLE_RECETTE							= 'recette';
	const ID_RECETTE							= 'IDRecette';
	const LIBELLE_RECETTE 						= 'LibelleRecette';
	const BUDGET_RECETTE 						= 'BudgetRecette';
	const ID_ACTION_RECETTE						= 'IDAction';
	const AUTEUR_RECETTE						= 'AuteurRecette';
	
	
		/*Attributs*/
	/**
	 * @var int
	 */
	private $id;

	/**
	 * @var int
	 */
	private $idAdc;

	/**
	 * @var string
	 */
	private $libelle;

	/**
	 *  @var float
	 */
	private $budget;
	
	/**
	 * @var int
	 */
	private $auteurRecette;

	/*Constructeur */
	
	public function __construct()
	{
		parent::__construct();
	}
	/* Méthodes BDD */
	/**
	 * Fonction permettant de récupérer une recette en fonction de l'identifiant de l'action
	 * @param integer $id identifiant de l'action
	 * @return Recette une recette
	 */
	public static function findByIdAction($idAction)
	{
		$CI = get_instance();
			
		$CI->load->database('db_adc', true);
			
		$resultat = $CI->db	->select(Recette::ID_RECETTE.','.Recette::LIBELLE_RECETTE.','.Recette::BUDGET_RECETTE.','.Recette::ID_ACTION_RECETTE.','.Recette::AUTEUR_RECETTE)
							->from(Recette::TABLE_RECETTE)
							->where(Recette::ID_ACTION_RECETTE, $idAction)
							->get()
							->result_array();
			
		if(!empty($resultat))
		{
			foreach($resultat as $result)
			{	
				$recette = new Recette();
				$recette->setId($result[Recette::ID_RECETTE]);
				$recette->setLibelle($result[Recette::LIBELLE_RECETTE]);
				$recette->setBudget($result[Recette::BUDGET_RECETTE]);
				$recette->setIdAdc($result[Recette::ID_ACTION_RECETTE]);
				$recette->setAuteurRecette($result[Recette::AUTEUR_RECETTE]);
				
				$r[]=$recette;
			}
			return $r;
		}
		return false;
	}
	
	/**
	 * Fonction permettant d'ajouter une depense
	 * @return true ou false
	 */
	public function addRecette()
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
	
		$CI->db->set(self::LIBELLE_RECETTE, $this->getLibelle());
		$CI->db->set(self::BUDGET_RECETTE, $this->getBudget());
		$CI->db->set(self::ID_ACTION_RECETTE, $this->getIdAdc());
		$CI->db->set(self::AUTEUR_RECETTE, $this->getAuteurRecette());
			
	
		return $CI->db->insert(self::TABLE_RECETTE);
	}
	
	/**
	 * Fonction permettant de modifier une depense
	 * @return true ou false
	 */
	public static function modifyDepense()
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
	
		$CI->db->set(self::LIBELLE_RECETTE, $this->getLibelle());
		$CI->db->set(self::BUDGET_RECETTE, $this->getBudget());
		$CI->db->set(self::ID_ACTION_RECETTE, $this->getIdAdc());
		$CI->db->set(self::AUTEUR_RECETTE, $this->getAuteurRecette());
			
	
		return $CI->db->update(self::TABLE_RECETTE);
	}
	
	/**
	 * Fonction permettant de supprimer une recette
	 * @return true ou false
	 */
	public static function delRecette($idAction)
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
			
		$resultat = $CI->db->where(Recette::ID_ACTION_RECETTE, $idAction)
							->delete(Recette::TABLE_RECETTE);
	
		return $resultat;
	}
	
	
	/*Getters et Setters*/

	/**
	 * get Id
	 * 
	 * @return int
	 */
	public function getId()
	{
		return $this->id;
	}

	/**
	 * Fonction permettant de modifier l'identifiant de la recette
	 * @param int
	 */
	public function setId($id)
	{
		$this->id=$id;
	}
	
	/**
	 * get Id Adc
	 * 
	 * @return int
	 */
	public function getIdAdc()
	{
		return $this->idAdc;
	}
	
	/**
	 * set Id Adc
	 * 
	 * @param int
	 */
	public function setIdAdc($adc)
	{
		$this->idAdc=$adc;
	}

	/**
	 * get Libelle
	 * 
	 * @return string
	 */
	public function getLibelle()
	{
		return $this->libelle;
	}
	
	/**
	 * set Libelle
	 * 
	 * @param string
	 */
	public function setLibelle($libelle)
	{
		$this->libelle=$libelle;
	}

	/**
	 * get Budget
	 * 
	 * @return string
	 */
	public function getBudget()
	{
		return $this->budget;
	}
	
	/**
	 * set Budget
	 * 
	 * @param string
	 */
	public function setBudget($budget)
	{
		$this->budget=$budget;
	}
	
	/**
	 * get Etudiant
	 * 
	 * @return Etudiants
	 */
	public function getEtudiant()
	{
		$CI = get_instance();
    	$CI->load->database('db_adc', true);
    	$idEtudiant = $CI->db	->select(Recette::ID_ETUDIANT_RECETTE)
						    	->from(Recette::TABLE_RECETTE)
						    	->where(Recette::ID_ACTION_RECETTE, $idAction)
						    	->limit(1)
						    	->get()
						    	->result_array();
    	
    	if(!empty($idEtudiant))
    	{
			$etudiant = Etudiants::findById($idEtudiant[Recette::ID_ETUDIANT_RECETTE]);
			return $etudiant;
    	}
    	else
    		return false;
	}
	
	
	/**
	 * get Auteur Recette
	 * 
	 * @return int
	 */
	public function getAuteurRecette()
	{
		return $this->auteurRecette;
	}
	
	/**
	 * Fonction permettant de modifier l'étudiant auteur de la recette
	 * @param int
	 */
	public function setAuteurRecette($auteur)
	{
		$this->auteurRecette=$auteur;
	}
}


?>